package com.hskn.hss.module.oilDevice.domain;

import java.io.Serializable;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.time.LocalDate;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hskn.hss.core.annotation.Excel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.springframework.data.annotation.Transient;

/**
 * 每日油量变化统计对象 state_oil_device
 * 
 * @author ruoyi
 * @date 2021-08-05
 */
@Data
@EqualsAndHashCode(callSuper = false)
//@TableName("state_oil_device")
public class StateOilDevice  implements Serializable
{
    private static final long serialVersionUID = 1L;

    /** id */
    private String id;

    /** 车牌号 */
    @Excel(name = "车牌号")
    private String carnumber;

    /** 加油量 */
    @Excel(name = "加油量")
    private BigDecimal addOilNum;
    /** 漏油量 */
    @Excel(name = "漏油量")
    private BigDecimal outOilNum;
    /** 秏油量 */
    @Excel(name = "秏油量")
    private BigDecimal useOilNum;
    /** 漏油次数 */
    @Excel(name = "漏油次数")
    private Integer outOilCount;
    /** 加油次数 */
    @Excel(name = "加油次数")
    private Integer addOilCount;

    /** 车辆所属部门id */
    @Excel(name = "车辆所属部门id")
    private String deptidforcarId;

    /** 车牌号id */
    @Excel(name = "车牌号id")
    private String carId;

    /** 车辆类型 */
    @Excel(name = "车辆类型")
    private String carTypeId;
    /** 车辆类型名称 */
    @Excel(name = "车辆类型名称")
    private String carTypeName;

    /** 行驶里程(km) */
    @Excel(name = "行驶里程(km)")
    private BigDecimal clockMileage;

    /** 作业大类Id */
    @Excel(name = "作业大类Id")
    private String carcategoryId;

    /** 机构类型 */
    @Excel(name = "机构类型")
    private String deptidforcarType;

    /** 机构名称 */
    @Excel(name = "机构名称")
    private String deptidforcarName;
    /** 加油时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;
    /** 漏油时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date outTime;

    /**
     * 每天耗油
     */
    @Transient
    @TableField(exist = false)
    private BigDecimal useOilEve;


    /**
     * 百公里耗油
     */
    @Excel(name = "百公里耗油")
    @Transient
    @TableField(exist = false)
    private BigDecimal baiKmOil;

    /** 加油日期 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createDate;
    /** 加油日期 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date deviceDate;

    /**
     *最大速度
     */
    private BigDecimal maxSpeed;
    /** 行驶秒数 */
    private BigDecimal moveSecondSum;
    /** 開始時間 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date startDate;
    /** 結束時間 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date endDate;
    /**
     * 开始位置
     */
    private String startPosition;
    /**
     * 结束位置
     */
    private String endPosition;
    /**
     * 行驶次数
     */
    private Integer runCount;


    public StateOilDevice() {
    }

    public StateOilDevice(String carnumber, BigDecimal addOilNum, BigDecimal outOilNum, BigDecimal useOilNum, Integer outOilCount, Integer addOilCount, String deptidforcarId, String carId, String carTypeId, String carTypeName, BigDecimal clockMileage, String carcategoryId, String deptidforcarType, String deptidforcarName, Date createTime, Date createDate, Date deviceDate, BigDecimal maxSpeed, BigDecimal moveSecondSum, Date startDate, Date endDate, String startPosition, String endPosition,Integer runCount) {
        this.carnumber = carnumber;
        this.addOilNum = addOilNum;
        this.outOilNum = outOilNum;
        this.useOilNum = useOilNum;
        this.outOilCount = outOilCount;
        this.addOilCount = addOilCount;
        this.deptidforcarId = deptidforcarId;
        this.carId = carId;
        this.carTypeId = carTypeId;
        this.carTypeName = carTypeName;
        this.clockMileage = clockMileage;
        this.carcategoryId = carcategoryId;
        this.deptidforcarType = deptidforcarType;
        this.deptidforcarName = deptidforcarName;
        this.createTime = createTime;
        this.createDate = createDate;
        this.deviceDate = deviceDate;
        this.maxSpeed = maxSpeed;
        this.moveSecondSum = moveSecondSum;
        this.startDate = startDate;
        this.endDate = endDate;
        this.startPosition = startPosition;
        this.endPosition = endPosition;
        this.runCount = runCount;
    }
}
